#coding:utf-8
import re

TLD_NAME = (
'ac.at',
'ac.cn',
'ac.id',
'ac.jp',
'ac.th',
'adv.br',
'ae',
'ag',
'ah.cn',
'ai',
'am',
'appspot.com',
'ar',
'art.pl',
'as',
'asia',
'at',
'au',
'ba',
'bd',
'be',
'bg',
'biz',
'bj.cn',
'bl.uk',
'blog.br',
'bo',
'br',
'br.com',
'by',
'bz',
'ca',
'cat',
'cc',
'cd',
'ch',
'cl',
'club.tw',
'cn',
'cn.com',
'co',
'co.at',
'co.id',
'co.in',
'co.jp',
'co.kr',
'com',
'com.br',
'com.cn',
'com.co',
'com.do',
'com.ec',
'com.es',
'com.hk',
'com.lb',
'com.mx',
'com.my',
'com.pe',
'com.ph',
'com.pl',
'com.pt',
'com.ru',
'com.sg',
'com.tw',
'com.ua',
'com.vn',
'coop',
'cq.cn',
'cx',
'cz',
'de',
'dk',
'donetsk.ua',
'ec',
'edu',
'edu.br',
'edu.cn',
'edu.hk',
'edu.mx',
'edu.my',
'edu.ph',
'edu.pl',
'edu.sa',
'edu.sg',
'edu.tw',
'ee',
'elk.pl',
'eng.br',
'es',
'etc.br',
'eti.br',
'eu',
'eu.int',
'fed.us',
'fi',
'fj.cn',
'fm',
'fr',
'gc.ca',
'gd',
'gd.cn',
'ge',
'gg',
'go.cr',
'go.jp',
'go.th',
'gob.mx',
'gob.pe',
'gouv.fr',
'gov',
'gov.br',
'gov.cn',
'gov.co',
'gov.hk',
'gov.mo',
'gov.sg',
'gov.tw',
'gov.uk',
'gp',
'gr',
'gr.jp',
'gs',
'gt',
'gx.cn',
'gy',
'gz.cn',
'ha.cn',
'hb.cn',
'he.cn',
'hi.cn',
'hk',
'hk.cn',
'hm',
'hn.cn',
'hr',
'hu',
'i.ph',
'idv.tw',
'ie',
'if.ua',
'iki.fi',
'il',
'im',
'in',
'in.th',
'in.ua',
'info',
'info.pl',
'int',
'int.ru',
'io',
'ir',
'is',
'it',
'je',
'jl.cn',
'jp',
'js.cn',
'jx.cn',
'k12.mi.us',
'kharkov.ua',
'kiev.ua',
'kr',
'ks.us',
'kz',
'la',
'li',
'lib.in.us',
'lk',
'ln.cn',
'local',
'lt',
'lu',
'lukow.pl',
'lv',
'lviv.ua',
'ly',
'ma',
'mat.br',
'md',
'me',
'med.br',
'mil',
'mn',
'mn.us',
'mo.cn',
'mobi',
'mp',
'ms',
'msk.ru',
'mu',
'museum',
'mx',
'my',
'naklo.pl',
'name',
'name.my',
'ne.jp',
'net',
'net.cn',
'net.my',
'net.pl',
'net.ru',
'net.tw',
'nhs.uk',
'nl',
'nm.cn',
'no',
'nom.br',
'np',
'nu',
'nz',
'odessa.ua',
'on.ca',
'or.id',
'or.it',
'or.jp',
'or.kr',
'or.th',
'org',
'org.br',
'org.cn',
'org.es',
'org.hk',
'org.in',
'org.mk',
'org.mx',
'org.pl',
'org.ru',
'org.sg',
'org.tw',
'org.ua',
'oslo.no',
'padova.it',
'pc.pl',
'pe',
'pe.kr',
'ph',
'pisz.pl',
'pk',
'pl',
'pp.ru',
'pri.ee',
'pro',
'ps',
'pt',
'py',
're',
'ro',
'rs',
'ru',
'sc',
'sc.cn',
'sch.id',
'sd.cn',
'se',
'sebastopol.ua',
'sg',
'sh',
'sh.cn',
'si',
'sk',
'sn.cn',
'srv.br',
'st',
'su',
'tc',
'te.ua',
'tk',
'tl',
'tm',
'to',
'tomsk.ru',
'tr',
'tt',
'tv',
'tw',
'tw.cn',
'uk',
'uk.com',
'us',
'us.com',
'uy',
'uz',
'va.us',
'vc',
've',
'vg',
'vic.gov.au',
'vn',
'vn.ua',
'waw.pl',
'web.id',
'wroc.pl',
'ws',
'xxx',
'za',
'za.net',
'za.org',
'zj.cn',
'zm',
)

RE_TLD_NAME = re.compile(
    r".*?((?:[^\.]+\.)(%s))$"%(
        '|'.join([i.replace('.', '\\.') for i in TLD_NAME])
    )
)

def tld_name(domain):
    m = RE_TLD_NAME.match(domain)
    if m:
        return m.groups()[0]

if __name__ == '__main__':
    print tld_name('www.work.com')
    print tld_name('zsp.com')
    print tld_name('www.zsp.com')
    print tld_name('www.zsp.edu.cn')
    print tld_name('xx.www.zsp.edu.cn')
    print tld_name('xx.www.zsp.com.cn')

